Skip to content

Add fuzzer for dbm module#46

Open
AdamKorcz wants to merge 1 commit intopython:mainfrom
AdamKorcz:add-dbm-fuzzer
Open

Add fuzzer for dbm module#46
AdamKorcz wants to merge 1 commit intopython:mainfrom
AdamKorcz:add-dbm-fuzzer

Conversation

@AdamKorcz
Copy link
Copy Markdown
Contributor

@AdamKorcz AdamKorcz commented Apr 10, 2026

Fuzzes CPython's dbm backend — whichever implementation dbm.open() selects on the build, typically the gdbm C module (Modules/_gdbmmodule.c) or _dbm (Modules/_dbmmodule.c). Opens a fresh GDBM-style database in a temp directory with mode "c", then drives a sequence of up to 20 fuzzed operations — store (with fuzzed-length keys and values), get, key listing via db.keys(), membership-guarded delete, and iteration with value lookup — to exercise the hash-table insert/lookup/delete paths and the on-disk file handling in the C backend.

@AdamKorcz AdamKorcz requested a review from a team as a code owner April 10, 2026 19:57
@AdamKorcz AdamKorcz marked this pull request as draft April 10, 2026 21:26
@AdamKorcz AdamKorcz marked this pull request as draft April 10, 2026 21:26
@AdamKorcz AdamKorcz marked this pull request as draft April 10, 2026 21:26
@sethmlarson sethmlarson marked this pull request as ready for review April 22, 2026 20:44
Fuzzes CPython's dbm backend — whichever implementation dbm.open()
selects on the build, typically the gdbm C module
(Modules/_gdbmmodule.c) or _dbm (Modules/_dbmmodule.c). Opens a fresh
GDBM-style database in a temp directory with mode "c", then drives a
sequence of up to 20 fuzzed operations — store (with fuzzed-length
keys and values), get, key listing via db.keys(), membership-guarded
delete, and iteration with value lookup — to exercise the hash-table
insert/lookup/delete paths and the on-disk file handling in the C
backend.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants